Recording using proxy servers

ABSTRACT

Systems and methods for recording a communication session between a customer and an agent of a customer center communication system are provided. In this regard, a representative method comprises: communicating with the customer center communication system via a proxy server; determining whether to record a media stream associated with the communication session based on communication between the customer center communication system and the proxy server; and responsive to determining that the media stream is to be recorded, recording the media stream from the communication session.

TECHNICAL FIELD

The present disclosure is generally related to recording media streamsassociated with interactions between customers and agents.

BACKGROUND

A traditional passive tap recording technique includes recorders thatare deployed along routes of communications. In this technique, eachrecorder operates similar to a “sniffer” by analyzing pass-bycommunication packets. The recorder records the packets corresponding tocertain communication sessions based on its configuration.

In an IP telephony environment at, for example, a customer center,recorders are typically deployed either at a voice gateway, whichinterfaces between the Internet Protocol (IP) network and the publicswitched telephone network (PSTN), or at switches in order to stay alongthe routes of the communications. This technique has the advantages,among others, of (1) minimum intrusion into a communication system, (2)cost effectiveness in deployment for companies with centralized officelocations, and (3) easy scalability for compliance recording.

To communicate with any agents at the customer center, a customercommunication device, such as a time domain multiplexing (TDM) or avoice over Internet Protocol (VoIP) phone, first sends communicationsignals to a call-processing device of the customer center, such as asoft switch. The communication signals can be sent either directly tothe call-processing device in case of IP to IP communications or via amedia processing device, such as a voice gateway in case of TDM to IP.The communication network can be a PSTN network or an IP-based network.

Once the communication signals have been received, the call-processingdevice then routes the communication signals to an agent phone. Afterseveral rounds of communication signal exchange, media communicationsbetween the agent's phone and customer's phone can proceed via the mediaprocessing device and distribution devices. The distribution devices arenetwork routers and switches.

In order to record the media communications using passive tapping,recorders are deployed at the media processing device or distributiondevices using the network traffic monitoring or duplicating features,such as Cisco™ Switch Port Analyzer (SPAN) feature, on these devices.These tapping features are often available to the recorders that aredirectly connected to the media processing device or distributiondevices, namely to recorders deployed a customer center telephonysystem.

The traditional passive tap recording technique is typically deployed ina telephony environment that has little to no “intelligence” in managingand recording media communications. Customer Centers are perpetuallylooking for ways to improve the recording features of their telephonycomponents. One way, among others, is to provide more “intelligence”within the customer telephony system and the recording system.

SUMMARY

Systems and methods for recording a communication session between acustomer and an agent of a customer center communication system areprovided. In this regard, a representative method comprises:communicating with the customer center communication system via a proxyserver; determining whether to record a media stream associated with thecommunication session based on communication between the customer centercommunication system and the proxy server; and responsive to determiningthat the media stream is to be recorded, recording the media stream fromthe communication session.

Other systems, methods, features, and advantages of the presentdisclosure will become apparent to one with skill in the art uponexamination of the following drawings and detailed description. It isintended that all such additional systems, methods, features, andadvantages be included within this description, be within the scope ofthe present disclosure, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a schematic diagram of an embodiment of a system in whichmedia communications can be recorded using a proxy server;

FIG. 2 illustrates an exemplary call flow in recording media streamsassociated with a call;

FIGS. 3A-C illustrate exemplary call flows for recording two or moreduplicated media streams associated with a call using a proxy server,such as that shown in FIG. 1;

FIG. 4 is an exemplary schematic diagram that illustrates a recorderfailover solution;

FIG. 5 is an exemplary schematic diagram that illustrates a proxyfailover solution;

FIG. 6 is a flow diagram that illustrates an exemplary operation forrecording media streams associated with a call;

FIG. 7 is a flow diagram that illustrates an exemplary operation forrecording an interaction between a customer and an agent using a proxyserver, such as that shown in FIG. 1; and

FIG. 8 is a flow diagram that illustrates an exemplary operation of anembodiment of a proxy server, such as that shown in FIG. 1, thatfacilitates recording encrypted media streams from the customer centertelephony system.

DETAILED DESCRIPTION

Disclosed are systems and methods for using intelligent proxy serversfor recording media streams associated with interactions. The proxyservers serve as interfaces between a recording system, which maycontain multiple recorders and other servers, and a customer center'stelephony infrastructure. Depending on the customer center's telephonyinfrastructure, the intelligent proxy servers can serve as standardsession initiation protocol (SIP) proxies, H323 Gatekeepers, or proxyservers using other call control protocols.

Customer center includes, but is not limited to, outsourced contactcenters, outsourced customer relationship management, customerrelationship management, voice of the customer, customer interaction,contact center, multi-media contact center, remote office, distributedenterprise, work-at-home agents, remote agents, branch office, backoffice, performance optimization, workforce optimization, hosted contactcenters, and speech analytics, for example.

Additionally, included in this disclosure are embodiments of integratedworkforce optimization platforms, as discussed in U.S. application Ser.No. 11/359,356, filed on Feb. 22, 2006, entitled “Systems and Methodsfor Workforce Optimization,” which is hereby incorporated by referencein its entirety. At least one embodiment of an integrated workforceoptimization platform integrates: (1) Quality Monitoring/CallRecording—voice of the customer; the complete customer experience acrossmultimedia touch points; (2) Workforce Management—strategic forecastingand scheduling that drives efficiency and adherence, aids in planning,and helps facilitate optimum staffing and service levels; (3)Performance Management—key performance indicators (KPIs) and scorecardsthat analyze and help identify synergies, opportunities and improvementareas; (4) e-Learning—training, new information and protocoldisseminated to staff, leveraging best practice customer interactionsand delivering learning to support development; and/or (5)Analytics—deliver insights from customer interactions to drive businessperformance. By way of example, the integrated workforce optimizationprocess and system can include planning and establishing goals—from bothan enterprise and center perspective—to ensure alignment and objectivesthat complement and support one another. Such planning may becomplemented with forecasting and scheduling of the workforce to ensureoptimum service levels. Recording and measuring performance may also beutilized, leveraging quality monitoring/call recording to assess servicequality and the customer experience.

Exemplary systems are first discussed with reference to the figures.Although these systems are described in detail, they are provided forpurposes of illustration only and various modifications are feasible.After the exemplary systems are described, examples of flow diagrams ofthe systems are provided to explain the manner in which media streamsassociated with an interaction can be recorded.

Systematic Diagram Using a Proxy Server

Referring now in more detail to the figures, FIG. 1 is a schematicdiagram of an embodiment of a system in which media communications canbe recorded using a proxy server. A customer center telephony system 105has one or more agent phones 110, 115, 120 that are coupled to one ormore computer-telephone integration (CTI) servers 125 and one or morecall control servers 130. The customer center telephony system 105 iscoupled to the recording system 133, which includes one or more proxyservers 135, one or more recorders 140, 145, 150, and one or morerecording control servers 155.

In general, the proxy server 135 is a computer that offers a computernetwork service to allow clients to make indirect network connections toother network services. A client connects to the proxy server 135, thenrequests a connection, file, or other resource available on a differentserver, e.g., the CTI server 125, call control server 130, and recordingcontrol server 155, among others. The proxy server 135 functions as asingle node for the customer center telephony system 105 or any thirdparty system (not shown) to communicate with. The proxy server can passrequests (modified) from the customer center telephony system 105 on tothe recorders 140, 145, 150 to complete the requests.

Alternatively or additionally, the proxy server accumulates and savesfiles that are most often requested in a cache. The proxy server 135provides the resource either by connecting to the specified server or byserving it from the cache. In some cases, the proxy server 135 can alterthe client's request or the server's response for various purposes. Theproxy server 135 can also serve as a firewall. In one embodiment, theproxy server 135 can be described as a buffer between a computer and theresources being accessed.

The cache of the proxy server 135 may already contain information neededby the time of the request, making it possible for the proxy server 135to deliver the information immediately. Therefore, the proxy server 135can potentially increase the speed of communication to the servers.

Alternatively or additionally, the proxy server 135 can operate in ahybrid recording environment and communicate with recorders that operatein a hybrid recording mode, in which both active recording and passivesniffing are performed.

It should be noted that the proxy server 135 is shown in FIG. 1 as aseparate device from the other components of the recording system 133.However, the proxy server 135 can also be deployed on one of therecorders 140, 145, 150 or on other servers, such as the recordingcontrol servers 155. The proxy server 135 can communicate with the CTIserver 125 and/or the call control server 130 to receive call events andother call related information such as agent identifications. Thecommunication can also involve the recording of at least one mediastream associated with an interaction within the customer centertelephony system 105.

The customer center telephony system 105 can be configured to send callrequests to or receive call requests from the proxy server 135. Thecustomer center telephony system 105 can further be configured to sendduplicated media streams associated with the interactions to be recordedto the destinations negotiated in the call request process. The proxyserver 135 can also invoke and send requests to the customer centertelephony system 105 to request the duplicated media streams ofinteractions based on received CTI events and information or other callnotification systems, such as SIP, for example.

The proxy server 135 can route the duplicated media streams associatedwith the interactions to the recorders 140, 145, 150 based on variousconditions, criteria, or policies. The proxy server 135 can alsore-direct the calls to a different proxy server based on load,bandwidth, or other configurations. The proxy server 135 can communicatewith the recorders 140, 145, 150 using standard call control protocols,such as session initiation protocol (SIP), H323, media gateway controlprotocol (MGCP), or skinny client control protocol (SCCP), or usingproprietary protocols, or using static configurations. The operation ofthe proxy server is further described in relation to FIGS. 6-8.

Session Initiation Protocol (SIP)

Briefly, SIP is an application layer control simple signaling protocolfor Voice Over Internet Protocol (VoIP) implementations. SIP is atextual client-server based protocol that the end user systems and proxyservers can provide call forwarding, callee and caller numberidentification, basic Automatic Call Distribution (ACD) and personalmobility, among others.

SIP addresses are generally in the form of a Uniform Resource Location(URL). The SIP addresses can be embedded in Web pages and therefore canbe integrated as part of implementations such as Click to talk, forexample. SIP using simple protocol structure, provides fast operation,flexibility, scalability and multiservice support. SIP provides its ownreliability mechanism. SIP creates, modifies and terminates sessionswith one or more participants. These sessions include Internetmultimedia conferences, Internet telephone calls and multimediadistribution. Members in a session can communicate using multicast orusing a mesh of unicast relations, or a combination of these. SIPinvitations used to create sessions carry session descriptions, whichallow participants to agree on a set of compatible media types.

SIP supports user mobility by proxying and redirecting requests to theuser's current location. Users can register their current location. SIPis not tied to any particular conference control protocol. It isdesigned to be independent of the lower-layer transport protocol and canbe extended with additional capabilities. SIP transparently supportsname mapping and redirection services, allowing the implementation ofIntegrated Services Digital Network (ISDN) and Intelligent Networktelephony subscriber services. These facilities also enable personalmobility which is based on the use of a unique personal identity. SIPsupports five facets of establishing and terminating multimediacommunications: 1) User location, 2) User capabilities, 3) Useravailability, 4) Call setup, and 5) Call handling.

SIP can also initiate multi-party calls using a multipoint control unit(MCU) or fully-meshed interconnection instead of multicast. Internettelephony gateways that connect Public Switched Telephone Network (PSTN)parties can also use SIP to set up calls between them. SIP is designedas part of a multimedia data and control architecture currentlyincorporating protocols, such as Resource Reservation Protocol (RSVP),Real-Time Transport Protocol (RTP), Real-Time Streaming Protocol (RTSP),and Service Advertising Protocol (SAP), among others. However, thefunctionality and operation of SIP does not depend on any of theseprotocols. SIP can also be used in conjunction with other call setup andsignaling protocols. In that mode, an end system uses SIP exchanges todetermine the appropriate end system address and protocol from a givenaddress that is protocol-independent. For example, SIP could be used todetermine that the party can be reached using H.323, to find the H.245gateway and user address, and then use H.225.0 to establish the call.

H.323 Protocol

H.323 is a protocol that generally provides audio-visual communicationsessions on any packet network. Currently, H.323 is implemented byvarious Internet real-time applications such as NetMeeting and Ekiga.H.323 is commonly used in voice over Internet Protocol (VoIP, InternetTelephony, or IP Telephony) and IP-based videoconferencing.

Media Gateway Control Protocol (MGCP)

MGCP is a standard protocol generally for handling the signaling andsession management needed during a multimedia conference. The protocoldefines a means of communication between a media gateway, which convertsdata from the format required for a circuit-switched network to thatrequired for a packet-switched network and the media gateway controller.MGCP can be used to set up, maintain, and terminate calls betweenmultiple endpoints. MGCP can be used for controlling telephony gatewaysfrom external call control elements, such as the media gatewaycontrollers or call agents. MGCP assumes a call control architecturewhere the call control intelligence is outside the gateways and handledby external call control elements. The MGCP assumes that these callcontrol elements, or Call Agents, can synchronize with each other tosend coherent commands to the gateways under their control. MGCP is, inessence, a master/slave protocol, where the gateways are generallyexpected to execute commands sent by the Call Agents.

Skinny Client Control Protocol (SCCP)

SCCP defines a simple and easy to use architecture. An H.323 proxyserver can be used to communicate with the Skinny Client using the SCCP.In such a case, the telephone is a skinny client over IP, in the contextof H.323. A proxy server is used for the H.225 and H.245 signaling. Theend stations (such as the agent phone 110, 115, 120) can run what iscalled the Skinny Client, which consumes less processing overhead. TheSkinny Client can communicate with the call control server 130 toestablish a call with another phone 110, 115, 120. Once the call controlserver 130 has established the call, the two phones use connectionless(UDP/IP-based) communication for audio transmissions. Costs and overheadare thus reduced by confining the complexities of H.323 call setup tothe call control server 130, and using the Skinny protocol for theactual audio communication into and out of the end stations.

Simply Call Flow Diagram

FIG. 2 illustrates an exemplary call flow in recording media streamsassociated with a call. Upon receiving a call request for an agent'sextension via line 210, a call control server 230 checks the recordingconfiguration for that extension. If the extension is configured forrecording, in addition to the normal call setup procedures, the callcontrol server 230 sends call requests to a proxy server 235 and theagent phone 220 to establish dialogs for recording via lines 225 and237. Upon receiving the call request from the call control server 230,the proxy server 235 routes the call from the call control server 230 toone of the recorders 240, 245 via lines 237, 242. The recorders areregistered with the proxy server 235 based on, for example, a recordingload balancing algorithm, among others. Upon receiving a positiveconfirmation from the selected recorder 245, the proxy server 235 caninclude an IP address and port of the selected recorder 245 in itsresponses as part of the call control flow.

Upon having successfully established the dialogs, the call controlserver 230 instructs the agent's phone 220 via line 225 to sendduplicated media streams of the on-going call to the recorder 245. Theagent phone 220 duplicates media streams and sends the duplicated mediastreams via line 247, in the format of the, for example, real-timetransport protocol (RTP) packets, of the call directly to the recorder245. The recorder 245 can associate two of the media streams of the samecall and record them as, for example, a single media stream. When thecall ends, the call control server 230 terminates the dialog with theproxy server 235 using the call control protocol via line 237. The proxyserver 235 sends a call end message to the recorder 242 via line 242.

Call Flows for Recording Using a Proxy Server

FIGS. 3A-C illustrate exemplary call flows for recording one or moreduplicated media streams associated with a call using a proxy server,such as that shown in FIG. 1. The call control servers 330A-C send callrequests to proxy servers 335A-C and the agent phones 320A-C toestablish dialogs for recording media streams via lines 337A-C. The twoor more duplicated media streams can be sent to a recording system in asingle call dialog or as two separate call dialogs. In case of twoseparate call dialogs, a unique call identification of the original callmay be included in the information of the two call dialogs to link therelationship between them.

Referring now to FIG. 3A, the proxy server 335A instructs the callcontrol server 330A via line 337A to re-direct the calls to a recorder345A. The call control server 330A instructs the agent phone 320A,gateways (not shown), conference bridges (not shown) and other telephonycomponents to duplicate the media streams and transmit the duplicatedmedia streams to the recorder 345A. The call control server 330Acommunicates with the recorder 345A to establish a dialog for recordingthe duplicated media streams via line 339. The agent phone 320Atransmits the duplicated media streams to the recorder 345A via line341.

Referring to FIG. 3B, the proxy server 335B proxies the call and directsan agent phone 320B to send the duplicated media streams directly torecorder 345B. The proxy server 335B communicates with the recorder 345Bto establish a dialog for recording the duplicated media streams vialine 342. The call control server 330B instructs with the agent phone320B to duplicate the media streams and transmit the duplicated mediastreams directly to the recorder 345B. The agent phone 320B transmitsthe duplicated media streams directly to the recorder 345B via line 344.

Referring to FIG. 3C, the proxy server 335C proxies the call as well asthe duplicated media streams. The proxy server 345C communicates withthe recorder 335C to establish a dialog for recording the duplicatedmedia streams via line 346. The call control server 330C instructs theagent phone 320C to duplicate the media streams and transmit theduplicated media streams to the proxy server 335C. The agent phone 320Ctransmits the duplicated media streams to the proxy server 335C via line348. The proxy server 335C receives the duplicated media streams andtransmits the duplicated media streams to the recorder 345C via line352.

The proxy servers 335 in FIGS. 3A-C may use the standard call controlcalls such as SIP, H323, which may or may not be the same as theprotocol it uses to communicate with the telephony system, tocommunicate with the recorders. The proxy server may also use otherprotocols to communicate with the recorders 345.

Recorder Failover Solution

FIG. 4 is a schematic diagram that illustrates an embodiment thatutilizes recorder failover. A proxy server 435 communicates with acustomer center telephony system 405, which includes an agent phone 420and a call control server 430, among others. The proxy server 435communicates with multiple recorders 440, 445 of a recording system 433.If the recorder 440 malfunctions, the proxy server 435 can communicatewith the recorder 445 to record media streams associated with theinteractions within the customer center telephony system 405, and viceversa. If the recorders 440, 445 malfunction, the proxy server 435 cancommunicate with another recorder (not shown) to record the mediastreams associated with the interactions within the customer centertelephony system 405. Alternatively or additionally, the proxy server435 detects that a recorder fails and sends a redirect message (orreINVITE message as in the case with SIP) to the Customer Centertelephony system to transmit the existing call/recordings to a “good”recorder.

Proxy Failover Solution

FIG. 5 is an exemplary schematic diagram that illustrates a embodimentthat utilizes proxy failover. The proxy failover solution can use a linkprotector 534, which communicates with a customer center telephonysystem 505. The system 505 includes an agent phone 520 and a callcontrol server 530, among others. Multiple proxy servers connect to thelink protector 534. In this example, proxy server 535 serves as aprimary server and proxy server 537 and other servers (not shown) serveas back-ups. The proxy servers 535, 537 can have the same IP address onthe network interface, connecting to the link protector. These proxyservers 535, 537 connect to the same pool of recorders 540, 545. Duringnormal operation, the link protector 534 passes network traffic to theprimary proxy server 535. Upon having detected that connection to theprimary proxy server 535 is down, the link protector 534 passes trafficto the backup proxy server 357.

Alternatively or additionally, proxy failover can be achieved byconfiguring the multiple proxy servers 535, 537 with different IPaddresses but the same domain name system (DNS) name. In thisimplementation, the multiple proxy servers 535, 537, connecting to thesame pool of recorders are utilized. These proxy servers 535, 537, withdifferent IP addresses on the interface connecting to the customercenter telephony system 505, are registered with the same DNS name. Thecustomer center telephony system 505 is configured with the DNS names ofthe proxy servers 535, 537 for communicating with the proxy servers 535,537. For example, the customer center telephony system 505 queries forthe DNS of the proxy servers 535, 537 to obtain the proxy servers' IPaddresses. Responsive to the query, the customer center telephony system505 receives the proxy servers' IP addresses and maintains a list of theIP addresses in a DNS database. The customer center telephony system 505generally exhausts the entire list to find an IP address to successfullyconnect to the proper proxy server.

Alternatively or additionally, proxy failover can be achieved byconfiguring a primary and multiple secondary proxy servers in thecustomer center telephony system 505. Alternatively or additionally, afailover solution can be achieved by instructing the recorders 540, 545to switch to passive (sniffing) recording provided that the recorders540, 545 are configured with a hybrid recording mode.

Flow Diagram Depicting Operation of Recording Media Streams

FIG. 6 is a flow diagram that illustrates operation of an embodiment inwhich media streams associated with an interaction are recorded.Beginning with block 605, a customer center telephony systemcommunicates with a proxy server for recording the media streams of theinteraction. For example, a customer center's telephony infrastructurecan configure each telephony component, such as an agent phone with anextension, gateway, call control server, and CTI server, among others,with recording options. The recording options can include, but are notlimited to the following:

-   -   1. “Do not record”, which indicates calls on an extension should        never been recorded.    -   2. “100% record”, which indicates that all calls on the        extension should be recorded.    -   3. “Application driven record”, which means the telephony        components receive instructions from applications of, for        example, a recording system or a policy system, to initiate a        recording session of a call on the extension.    -   4. Record communication sessions based on business rules of the        communication system, the business rules including recording all        communication sessions in a queue or at a predetermined time.

In block 610, the proxy server stores recording information receivedfrom the customer center telephony system or the recording subsystem,among others. The recording information can include the recordingoptions as mentioned above for initiating a recording session.

In block 615, the proxy server communicates with the customer centertelephony system or the recording subsystem and determines whether torecord the media streams associated with the interaction based on thecommunication. In block 620, responsive to the determination to recordthe media streams, the proxy server provides recording instructions tothe customer center telephony system and the recording system based onthe recording information.

In the first two options mentioned above, the customer center telephonysystem receives the calls and determines whether to invoke the calls tothe proxy server for recording. In the “application driven record”option, the customer center telephony system waits to receiveinstructions from the recording system and a policy system. For example,the recording system may get the events of the calls on the agent phonesvia a CTI link. The instructions for recording from the recording systemcan be delivered via the CTI link to the customer center telephonysystem. In turn, the customer center telephony system can invoke thecall recording session.

Alternatively or additionally, the instructions for recording can besent to the customer center telephony system in the form of the callcontrol protocol to directly invoke the call recording session.Alternatively or additionally, the customer center's telephonyinfrastructure may choose to set a recording option to all extensions asa default option. For example, the customer center telephony system canset “application driven record” as the recording option without anyconfiguration involved. In this case, the proxy server invokes therequests for recording the media streams.

In a recording system where a hybrid recording mode is provided, theproxy server can decide if it needs to instruct the telephony system foractive recording based on whether the call is already being recordedusing the sniffing method.

In block 625, the media streams associated with the interaction withinthe customer center telephony system are associated with each other sothat, for example, the media streams can be stitched together as asingle recording for archival and replay. In block 630, the proxy serveror the customer center telephony system initiates a recording sessionwith the recording system. In block 635, the recording system receivesand records the media streams based on the recording instructions fromthe proxy server.

Flow Diagram Depicting Operation of a Proxy Server

FIG. 7 is a flow diagram that illustrates an exemplary operation forrecording an interaction between a customer and an agent using a proxyserver, such as that shown in FIG. 1. In block 705, the proxy servercommunicates with a customer center telephony system. The communicationis related to the recordation of the interaction between the customerand the agent. In block 710, the proxy server stores data that includesrecording criteria corresponding to the recordation of the media streamsassociated with the interaction. The data is generally saved in thecache of the proxy server.

In block 715, the proxy server determines whether to record the mediastreams associated with the interaction based on the communicationbetween the customer center telephony system and the proxy server. Forexample, the customer center telephony system can invoke the proxyserver to record the interaction. The proxy server receives informationpertaining to the invocation from the customer center telephony systemand facilitates the process for recording the interaction.

In block 720, responsive to the determination of recording the mediastreams, the proxy server receives information about the media streamsto facilitate associating the media streams with each other. In block725, the proxy server transmits instructions to the customer centertelephony system for initiating a recording session. The instructionsinclude duplicating the media streams and transmitting the duplicatedmedia streams to a recording subsystem of the recording system.Alternatively or additionally, the instructions can include transmittingthe duplicated media streams to the proxy server, which relays theduplicated media streams to the recording subsystem. Alternatively oradditionally, the proxy server can provide instructions to the recordingsystem to initiate the recording session.

In block 727, the proxy server can intelligently route requests to therecorders based on various criteria, policies, or recorder conditions.Alternatively, the customer center telephony system can alsointelligently route requests to the recorders based on various criteria,policies, or recorder conditions. In this regard, either the proxyserver or the customer center telephony system, or both, can:

-   -   (1) Balance call load by routing calls to the recorders based on        the information of the recorders, such as current recording load        and CPU usage, among others;    -   (2) Route calls to recorders based on information in the call        control protocols (e.g., tie two streams associated with a        single call to the same recorder) or other policies such as        co-residency of media, co-residency of media includes, but is        not limited to, voice and screen capture, among others;    -   (3) Route calls to the recorders based on a network topology and        costs;    -   (4) Redirect calls to different proxy servers based on the        network topology and the recording load; and    -   (5) Reject the call if hybrid recording mode is configured on        the recorders and one of the recorder is already recording the        call via passive method; and    -   (6) Rejecting the media stream based on runtime or configuration        criteria, the criteria including the recorder being over-loaded.

In block 730, the recording subsystem receives and records the mediastreams based on the associated information. The information toassociate the media streams can be passed to the recording system viathe call control protocol, such as SIP or H323, or via the CTI link. Therecording system can use the information associated with the call tostitch the two media streams and record them as a single media stream.For example, a left media stream can be associated with a right mediastream by using a unique identification stored in the left and rightmedia streams. The unique identification corresponds to the interaction.

Alternatively or additionally, the left and right media streams aretransmitted to first and second recording subsystems of the recordingsystem, respectively. The first and second recording subsystems providethe left and right media streams, respectively, to be stitched togetheras a single stream at, for example, archival and replay systems.Alternatively or additionally, the left and right media streams can betransmitted from the customer center telephony system to the archivaland/or replay systems, which both can stitched together the left andright media streams as a single stream.

With regard to stitching, some embodiments can, for example, stitch thesegments together with no gap at replay, stitch the segments togetherwith a gap at replay, stitch the segments together with alternativecontent at replay (such as silence or other identifiers to signify thatsecured information has not been recorded and/or deleted and/or isprotected from replay). For example, such a system may also provideindication between the stitched sides, which can be, for example, two ormore sides that would provide indication to a user that something wasremoved for security purposes.

Network Topology

A network topology is the pattern of links connecting pairs of nodes ofa network. The network topology provides the “shape” of a local areanetwork (LAN) or other communications system. A given node has one ormore links to others, and the links can appear in a variety of differentshapes. The simplest connection is a one-way link between two devices. Asecond return link can be added for two-way communication. Moderncommunications cables usually include more than one wire in order tofacilitate this, although very simple bus-based networks have two-waycommunication on a single wire.

One way, among others, to add more computers into a network is bydaisy-chaining, or connecting each computer in series to the next. If amessage is intended for a computer partway down the line, each systembounces the message along in sequence until the message reaches thedestination. A daisy-chained network can take two basic forms: linearand ring.

A linear topology puts a two-way link between one computer and the next.By connecting the computers at each end, a ring topology can be formed.An advantage of the ring is that the number of transmitters andreceivers can be cut in half, since a message will eventually loop allof the way around. When a node sends a message, each computer in thering processes the message. If a computer is not the destination node,the computer passes the message to the next node, until the messagearrives at its destination. If the message is not accepted by any nodeon the network, the message travels around the entire ring and returnsto the sender. This potentially results in a doubling of travel time fordata, but since the message is traveling at a significant fraction ofthe speed of light, the loss is usually negligible.

Another network topology, among others, is a star topology, whichreduces the chance of network failure by connecting all of the systemsto a central node. When applied to a bus-based network, this central hubrebroadcasts the transmissions received from any peripheral node to theperipheral nodes on the network, sometimes including the originatingnode. The peripheral nodes may thus communicate with all others bytransmitting to, and receiving from, the central node only. The failureof a transmission line linking the peripheral nodes to the central nodecan result in the isolation of that peripheral node from all others, butthe rest of the system remains unaffected.

Another network topology, among others, is a tree topology, which can beviewed as a collection of star networks arranged in a hierarchy. Thetree topology has individual peripheral nodes (e.g., leaves) which areused to transmit to and receive from one other node only and may not actas repeaters or regenerators. Unlike the star network, the function ofthe central node may be distributed.

As in the conventional star network, individual nodes may thus still beisolated from the network by a single-point failure of a transmissionpath to the node. If a link connecting a leaf fails, that leaf isisolated; if a connection to a non-leaf node fails, an entire section ofthe network becomes isolated from the rest.

In order to alleviate the amount of network traffic that comes frombroadcasting everything everywhere, more advanced central nodes weredeveloped that would keep track of the identities of different systemsconnected to the network. These network switches can “learn” the layoutof the network by first broadcasting data packets everywhere, thenobserving where response packets come from.

In a mesh topology, there are at least two nodes with two or more pathsbetween them. A special kind of mesh, limiting the number of hopsbetween two nodes, is a hypercube. The number of arbitrary forks in meshnetworks makes them more difficult to design and implement, but theirdecentralized nature makes them very useful. This is similar in someways to a grid network, where a linear or ring topology is used toconnect systems in multiple directions. A multi-dimensional ring has atoroidal topology, for instance.

A fully connected, complete topology or full mesh topology is a networktopology in which there is a direct link between all pairs of nodes. Ina fully connected network with n nodes, there are n(n−1)/2 direct links.Networks designed with this topology are usually very expensive to setup, but have a high amount of reliability due to multiple paths data cantravel on.

Hybrid networks use a combination of any two or more topologies in sucha way that the resulting network does not have one of the standardforms. For example, a tree network connected to a tree network is stilla tree network, but two star networks connected together (known asextended star) exhibit hybrid network topologies. A hybrid topology isalways produced when two different basic network topologies areconnected. Two common examples for Hybrid network are: star ring networkand star bus network. The Star ring network consists of two or more startopologies connected using a multistation access unit (MAU) as acentralized hub. The Star Bus network consists of two or more startopologies connected using a bus trunk (the bus trunk serves as thenetwork's backbone).

While grid networks have found popularity in high-performance computingapplications, some systems have used genetic algorithms to design customnetworks that have the fewest possible hops in between different nodes.Some of the resulting layouts are nearly incomprehensible, although theydo function quite well.

Flow Diagram Depicting Operation of a Proxy Server in a SecureEnvironment

FIG. 8 is a flow diagram that illustrates operation of an embodiment inwhich a proxy server facilitates recording of encrypted media streamsfrom the customer center telephony system. In the case where encryptionis used in the customer center telephony system, duplicated mediastreams delivered to the recording system can be encrypted. Theencrypted media streams have electronic keys for decryption of the mediastreams. In block 805, the electronic keys can be delivered to the proxyserver from a telephony component such as a phone, which sends theencrypted duplicated media streams, in a secure connection. The secureconnection may be achieved via a secure version of the call controlprotocols such as secure session initiation protocol (SIP) usingtransport layer security (TLS) or via a secure CTI link.

Upon detecting encryption and receiving the electronic keys, the proxyserver determines how to decrypt the encrypted media streams, shown inblock 810. The proxy server may choose to directly forward the keys tothe selected recorder via a secure connection, shown in block 815. Againthe secure connection may be a secure version of standard call controlprotocols such as secure sockets layer (SSL) and transport layersecurity (TLS) or proprietary socket connection secured by SSL or TLS.

In the scenario where the proxy server chooses to proxy the mediastreams, the proxy server directs the customer center telephony systemto send the encrypted duplicated media streams to itself, shown in block820. The proxy server decrypts the encrypted media streams using theelectronic keys passed from the customer center telephony system. Theproxy server forwards the decrypted media streams to the selectedrecorders via a secure connection between the recorder and itself. Inblock 825, the recording subsystem can receive and record the mediastreams.

Secure Sockets Layer (SSL) and Transport Layer Security (TLS)

Secure Sockets Layer (SSL) and Transport Layer Security (TLS), itssuccessor, are cryptographic protocols which provide securecommunications on the Internet for such things as e-mail, internetfaxing, and other data transfers. There are slight differences betweenSSL and TLS, but the protocol remains substantially the same. The term“SSL” as used here applies to both protocols unless clarified bycontext.

SSL provides endpoint authentication and communications privacy over theInternet using cryptography. In typical use, only the server isauthenticated (e.g., its identity is ensured) while the client remainsunauthenticated; mutual authentication requires public keyinfrastructure (PKI) deployment to clients. The protocols allowclient/server applications to communicate in a way designed to preventeavesdropping, tampering, and message forgery.

SSL involves three basic phases: 1) Peer negotiation for algorithmsupport, 2) Public key encryption-based key exchange andcertificate-based authentication, and 3) Symmetric cipher-based trafficencryption. The SSL protocol exchanges records; each record can beoptionally compressed, encrypted and packed with a messageauthentication code (MAC). Each record has a content type field thatspecifies which protocol is being used.

In general, the client sends and receives several handshake structuresas follows. The client sends a ClientHello message specifying the listof cipher suites, compression methods and the highest protocol versionit supports. Then the client receives a ServerHello, in which the serverchooses the connection parameters from the choices offered by the clientearlier.

When the connection parameters are known, client and server exchangecertificates (depending on the selected public key cipher). The servercan request a certificate from the client, so that the connection can bemutually authenticated. Client and server negotiate a common secretcalled “master secret”, or simply encrypting a secret with a public keythat is decrypted with the peer's private key. Other key data is derivedfrom this “master secret” (and the client and server generated randomvalues), which is passed through a carefully designed “Pseudo RandomFunction”.

TLS/SSL have a variety of security measures. Some security measures,among others, are numbering all the records and using the sequencenumber in the MACs and using a message digest enhanced with a key (soonly with the key can you check the MAC).

TLS/SSL protect against several “attacks,” like those involving adowngrade of the protocol to previous (less secure) versions, or weakercipher suites. TLS/SSL include a hash algorithm in which the messagethat ends the handshake (“Finished”) sends a hash of the exchanged dataseen by both parties.

TLS/SSL further include a pseudo random function that splits the inputdata in two (2) halves and processes them with different hashingalgorithms (e.g., Message-Digest algorithm 5 (MD5) and Secure HashAlgorithm (SHA)). Then the pseudo random function logically processes(e.g., XOR) the two (2) halves together. This way the data protectsitself in the event that one of these algorithms is found vulnerable.

Any process descriptions or blocks in flow charts should be understoodas representing modules, segments, or portions of code which include oneor more executable instructions for implementing specific logicalfunctions or steps in the process, and alternate implementations areincluded within the scope of the preferred embodiment of the presentdisclosure in which functions may be executed out of order from thatshown or discussed, including substantially concurrently or in reverseorder, depending on the functionality involved, as would be understoodby those reasonably skilled in the art of the present disclosure.

It should be emphasized that the above-described embodiments of thepresent disclosure, particularly, any “preferred” embodiments, aremerely possible examples of implementations, merely set forth for aclear understanding of the principles of the disclosure. Many variationsand modifications may be made to the above-described embodiment(s) ofthe disclosure without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andthe present disclosure and protected by the following claims.

1. A method for recording a communication session of a customer centercommunication system between a customer and an agent, comprising thesteps of: communicating with a customer center communication system viaa proxy server; determining whether to record a media stream associatedwith a communication session based on the communication between thecustomer center communication system and the proxy server; andresponsive to determining that the media stream is to be recorded,receiving and recording the media stream associated with thecommunication session.
 2. The method as defined in claim 1, furthercomprising communicating with a third party system via the proxy server,wherein the proxy server allows for request for connection, to file orother resources located on other third party system or the customercenter communication system.
 3. The method as defined in claim 1,wherein the proxy server provides resources by connection to a specifiedserver or by serving the resources from cache.
 4. The method as definedin claim 2, wherein the third party system includes a recordingcomponent.
 5. The method as defined in claim 2, further comprisingproviding a secure connection via the proxy server between the thirdparty system and the customer center communication system.
 6. The methodas defined in claim 1, further comprising: storing data in cache of theproxy server; and delivering the data from the cache of the proxy serverto the customer center communication system and a recording system,whereby accelerating communication traffic between the customer centercommunication system and the recording system.
 7. The method as definedin claim 6, wherein the data includes recording criteria correspondingto the recordation of the media stream.
 8. The method as defined inclaim 1, further comprising: receiving a first media stream and a secondmedia stream associated with the communication session; associating thefirst media stream with the second media stream; and transmitting thefirst media stream and the second media stream to the recording system.9. The method as defined in claim 8, wherein associating the first mediastream with the second media stream comprises using a uniqueidentification stored in the first media stream and the second mediastream, the unique identification corresponding to the communicationsession, wherein the recording system stitches the first media streamand the second media stream together as a single stream using the uniqueidentification and records the single stream.
 10. The method as definedin claim 8, wherein recording the media stream comprises recording thefirst media stream and the second media stream to first and secondrecording subsystems of the recording system, respectively, wherein thefirst and second recording subsystems are operative to provide the firstmedia stream and the second media stream, respectively, to be stitchedas a single stream.
 11. The method as defined in claim 8, furthercomprising: receiving the first media stream and the second media streamby one of an archival device and a replay device; and stitching thefirst media stream and the second media stream together at one of thearchival device and the replay device.
 12. The method as defined inclaim 1, further comprising transmitting instructions to the customercenter communication system to duplicate the media stream and transmitthe duplicated media stream to the recording system.
 13. The method asdefined in claim 12, wherein transmitting the duplicated media stream tothe recording system comprises transmitting the duplicated media streamto the proxy server, which relays the duplicated media stream to arecording subsystem of the recording system.
 14. The method as definedin claim 13, wherein transmitting the duplicated media stream to therecording system comprises transmitting the duplicated media stream to arecording subsystem of the recording system.
 15. The method as definedin claim 1, further comprising communicating with a first recordingsubsystem and a second recording subsystem of the recording system bythe proxy server, the proxy server being operative to communicate withthe first recording subsystem for recording the media stream if thesecond recording subsystem fails to communicate with the proxy server.16. The method as defined in claim 15, wherein the first recordingsubsystem is operative to perform both active recording and passivesniffing.
 17. The method as defined in claim 1, further comprisingcommunicating with multiple proxy servers using a link protector, themultiple proxy servers communicating with multiple recording subsystemsof the recording system, the link protector being operative to passnetwork traffic to a primary proxy server of the multiple proxy servers,such that upon having detected that connection between the primary proxyserver and the link protector is down, the link protector is operativeto pass the network traffic to a backup proxy server of the multipleproxy servers.
 18. The method as defined in claim 17, further comprisingconfiguring the multiple proxy servers with different Internet protocol(IP) addresses but the same domain name system (DNS) name.
 19. Themethod as defined in claim 17, further comprising configuring a primaryproxy server and multiple secondary proxy servers in the customer centercommunication system.
 20. The method as defined in claim 1, furthercomprising: encrypting the media stream; and receiving the encryptedmedia stream; decrypting the encrypted media stream; and recording thedecrypted media stream.
 21. The method as defined in claim 20, furthercomprising receiving electronic keys for decrypting the encrypted mediastream.
 22. The method as defined in claim 21, further comprisingforwarding the electronic keys to a recording system, the recordingsystem being operative to decrypt the encrypted media stream using theelectronic keys.
 23. The method as defined in claim 21, furthercomprising directing the customer center communication system to sendthe encrypted media stream to the proxy server, the proxy server beingoperative to decrypt the encrypted media stream using the electronickeys.
 24. The method as defined in claim 21, further comprisingdelivering the electronic keys using a secure connection, the secureconnection being achieved via a secure version of call controlprotocols, the protocols including one of a secure session initiationprotocol (SIP) using transport layer security (TLS) and a securecomputer-telephone integration (CTI) link.
 25. The method of claim 1,further comprising: planning at least one campaign to implement thegoals; scheduling and deploying a workforce in accordance with thecampaign to produce a plurality of agent-customer interactions;measuring performance of an agent on at least a portion of theagent-customer interactions to produce a set of quality metrics for theagent; analyzing the quality metrics to produce a rating of the measuredinteractions; combining at least a portion of quality metrics to produceperformance indicators; and using the performance indicators in theplanning step of a second campaign or another iteration of the at leastone campaign.
 26. A system for recording a communication session of acustomer center communication system between a customer and an agent,comprising: a customer center communication system having acommunication device, the communication device being operative totransmit a media stream associated with a communication session betweena customer and an agent; a proxy server being operative to communicatewith the customer center communication system to determine whether torecord the media stream of the communication session; and a recordingsystem being operative to communicate with the proxy server and thecustomer center communication system, the recording system being furtheroperative to record the media stream responsive to determining that themedia stream is to be recorded.
 27. The system as defined in claim 26,wherein the proxy server communicates with a third party system, whereinthe proxy server allows for request for connection, to file or otherresources located on other third party system or the customer centercommunication system.
 28. The system as defined in claim 26, wherein theproxy server provides resources by connection to a specified server orby serving the resources from cache.
 29. The system as defined in claim27, wherein the third party system includes a recording component. 30.The system as defined in claim 27, wherein the proxy server provides asecure connection between the third party system and the customer centercommunication system.
 31. The system as defined in claim 26, wherein theproxy server saves data in cache of the proxy server, the proxy serverbeing operative to deliver the data from the cache to the customercenter communication system and the recording system.
 32. The system asdefined in claim 31, wherein the data includes recording criteriacorresponding to the recordation of the media stream.
 33. The system asdefined in claim 26, wherein the proxy server is further operative to dothe following: receive a first media stream and a second media stream ofthe communication session, associate the first media stream with thesecond media stream, and transmit the first media stream and the secondmedia stream to the recording system.
 34. The system as defined in claim33, wherein the proxy server associates the first media stream with thesecond media stream by using a unique identification stored in the firstmedia stream and the second media stream, the unique identificationcorresponding to the communication session.
 35. The system as defined inclaim 34, wherein the customer center communication system stores theunique identification in the header of the first media stream and thesecond media stream.
 36. The system as defined in claim 26, wherein theproxy server transmits instructions to the customer center communicationsystem to duplicate the media stream and transmit the duplicated mediastream to the recording system.
 37. The system as defined in claim 36,wherein the customer center communication system is further operative totransmit the duplicated media stream to the proxy server, which relaysthe duplicated media stream to a recording subsystem of the recordingsystem.
 38. The system as defined in claim 36, wherein the customercenter communication system is further operative to transmit theduplicated media stream to a recording subsystem of the recordingsystem.
 39. The system as defined in claim 33, wherein the recordingsystem is further operative to record the media stream and the secondmedia stream as a single stream.
 40. The system as defined in claim 33,wherein information to associate the first media stream with the secondmedia stream is transmitted to the recording system via a call controlprotocol or a computer telephony integration (CTI) link, the callcontrol protocol including one of a session initiation protocol (SIP)and H323.
 41. The system as defined in claim 26, wherein the recordingsystem includes a first recording subsystem and a second subsystem, boththe first and second recording subsystems being operative to communicatewith the proxy server, the proxy server being operative to communicatewith the first recording system for recording the media stream if thesecond recording system fails to communicate with the proxy server. 42.The system as defined in claim 41, wherein the first recording subsystemis operative to perform both active recording and passive sniffing. 43.The system as defined in claim 26, further comprising multiple proxyservers being operative to communicate with a link protector andmultiple recording subsystems of the recording system, the linkprotector being operative to pass network traffic to a primary proxyserver of the multiple proxy servers, upon having detected thatconnection between the primary proxy server and the link protector isdown, the link protector being operative to pass the network traffic toa backup proxy server of the multiple proxy servers.
 44. The system asdefined in claim 43, wherein the multiple proxy servers are configuredwith different Internet protocol (IP) addresses but the same DNS name.45. The system as defined in claim 43, wherein the multiple proxyservers having a primary and multiple secondary proxy servers in thecustomer center communication system.
 46. The system as defined in claim26, wherein the customer center communication system encrypts the mediastream.
 47. The system as defined in claim 46, wherein the proxy serverreceives electronic keys for decrypting the encrypted media stream. 48.The system as defined in claim 47, wherein the proxy server is operativeto forward the electronic keys to the recording system, the recordingsystem being operative to decrypt the encrypted media stream using theelectronic keys.
 49. The system as defined in claim 47, wherein theproxy server is operative to direct the customer center communicationsystem to send the encrypted media stream to the proxy server, the proxyserver being operative to decrypt the encrypted media stream using theelectronic keys.
 50. The system of claim 26, further comprising: aworkforce manager comprising a scheduler; and a quality monitorconfigured to provide, to the scheduler, at least one quality goal for awork period and at least one agent quality score, wherein the scheduleris configured to produce a workforce schedule comprising agentassignments to work activities, wherein the workforce schedule is basedat least in part on the at least one quality goal and the at least oneagent quality score.
 51. The system of claim 50, further comprising alesson assignment component configured to receive at least one indicatorof performance of an agent, and further configured to assign a lesson tothe agent based on the at least one indicator.
 52. A system forrecording a communication session between a customer and an agent,comprising: a proxy server being operative to communicate with acustomer center communication system to determine whether to record amedia stream associated with a communication session, the proxy serverbeing further operative to transmit instructions to the customer centercommunication system to duplicate the media stream and transmit theduplicated media stream over a network; and a recording system beingoperative to communicate with the proxy server and the customer centercommunication system, the recording system being operative to receivethe duplicated media stream over the network and record the duplicatedmedia stream.